/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.donto.cidade;

import java.util.List;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import sys.donto.util.GenericDAO;
import sys.donto.util.HibernateUtil;

/**
 *
 * @author Cliente Master
 */
public class CidadeDAO extends GenericDAO<Cidade>{//Aqui a classe CidadeDAO herda da classe GenericDAO do pacote util, Essa classe possui operações comuns a todas as classes persistentes.
   
    public CidadeDAO() {
        super(Cidade.class);//Referencia a classe pai, que no caso é Cidade.
    }
    public List <Cidade> pesquisaDescricao(String Descricao){//Criando uma lista de cidade.
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        List <Cidade> cidades = (List<Cidade>) getSessao().createCriteria(Cidade.class).
                add(Restrictions.ilike("descricao", Descricao, MatchMode.ANYWHERE)).
                addOrder(Order.asc("descricao")).list();
        
        getSessao().close();
        return cidades;
    }
    
    public Cidade pesquisaId(int id){
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        Cidade cidade = (Cidade) getSessao().createCriteria(Cidade.class).
                add(Restrictions.eq("id", id)).uniqueResult();
        
        getSessao().close();
        return cidade;
    }
    
    public void salvar(Cidade cid){//se o ID for igual a zero ele adiciona a cidade, se não é pq ja possui, então atualiza.
        if(cid.getId()==0){
            adicionar(cid);
        } else {
            atualizar(cid);
        }
    }
    
}
